<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <title>Document</title>
</head>
<body>
<script language="javascript">
    //从一个给定的数组arr中,随机返回num个不重复项
    function getArrayItems(arr, num) {
        //新建一个数组,将传入的数组复制过来,用于运算,而不要直接操作传入的数组;
        var temp_array = new Array();
        for (var index in arr) {
            temp_array.push(arr[index]);
        }
        //取出的数值项,保存在此数组
        var return_array = new Array();
        for (var i = 0; i < num; i++) {
            //判断如果数组还有可以取出的元素,以防下标越界
            if (temp_array.length > 0) {
                //在数组中产生一个随机索引
                var arrIndex = Math.floor(Math.random() * temp_array.length);
                //将此随机索引的对应的数组元素值复制出来
                return_array[i] = temp_array[arrIndex];
                //然后删掉此索引的数组元素,这时候temp_array变为新的数组
                temp_array.splice(arrIndex, 1);
            } else {
                //数组中数据项取完后,退出循环,比如数组本来只有10项,但要求取出20项.
                break;
            }
        }
        return return_array;
    }

    //测试
    // var ArrList = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33];
    // alert(getArrayItems(ArrList, 6));
    //
    // var arr = [3, 2, 1, 4,5,6];
    // function sort (arr) {
    //     var maxNum= arr.length - 1;
    //     for (var i = 0; i < maxNum; i++) {
    //         // 声明一个变量，作为标志位
    //         var done = true;
    //         for (var j= 0; j< maxNum - i; i++) {
    //             if (arr[i] > arr[i + 1]) {
    //                 var temp = arr[i];
    //                 arr[i] = arr[i + 1];
    //                 arr[i + 1] = temp;
    //                 done = false;
    //             }
    //         }
    //         console.log("第"+(j+1)+"次排序后的数组是"+arr);
    //         if (done) {
    //             break;
    //         }
    //     }
    //     return arr;
    // }
    // sort(arr);
    // console.log(arr)


    var arr = [3, 2, 1, 4, 5, 6];

    function sort(arr) {
        var n = arr.length;
        var j, k;
        var flag = n;
        while (flag > 0) {
            k = flag;
            flag = 0;
            for (j = 1; j < k; j++) {
                if (arr[j - 1] > arr[j]) {

                    x = arr[j - 1];
                    arr[j - 1] = arr[j];
                    arr[j] = x;
                    flag = j;
                }
                console.log("第" + (j) + "次排序后的数组是" + arr);
            }
        }
    }
    sort(arr);
    console.log(arr);

</script>
</body>
</html>






